package modeloCarmenSanDiego;

import java.util.*;

import modeloCarmenSanDiego.edificios.Edificio;

public class Camino {
	
	private List<Ciudad> ciudades = new ArrayList<Ciudad>();
	
	public void generarCamino(Ciudad puntoDePartida, int cantidadDeCiudades){
		Ciudad ciudadActual = puntoDePartida;
		ciudades = new ArrayList<Ciudad>();
		ciudades.add(ciudadActual);
		for(int i = 1; i < cantidadDeCiudades; i++){
			ciudadActual = (ciudadActual.getDestinos()).get(0); 	//va siempre a la pos 0, asi que caja blanca se puede probar, 
			ciudades.add(ciudadActual);								//caja negra (jugador) es azar
		}
		//y en la ultima ciudad
		for(Edificio edificio : ciudadActual.getEdificios()){
			edificio.esconderLadron();
		}
	}
	
	public boolean contieneCiudad(Ciudad unaCiudad){
		return ciudades.contains(unaCiudad);
	}
	
	public Ciudad getCiudadSiguiente(Ciudad ciudadActual){
		if(!this.contieneCiudad(ciudadActual)) return null;
		if(this.tieneComoUltimaCiudad(ciudadActual)) return null;
		
		int indice = ciudades.indexOf(ciudadActual);
		return ciudades.get(indice + 1);
	}
	
	public int getLargo(){
		return ciudades.size();
	}

	public boolean tieneComoUltimaCiudad(Ciudad ciudadActual){
		return( ciudades.get(this.getLargo()-1).getNombre().equals(ciudadActual.getNombre())) ;
	}
}
